package demo1;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: lenovo
 * Date: 2022-06-30
 * Time: 17:59
 */
//被abstract修饰的类为抽象类
abstract class Shape{
    //成员属性
    public int num;
//构造方法
    public Shape(int num) {
        this.num = num;
    }
    //普通方法
public void fun(){
    System.out.println("普通方法");
}
    //被abstract修饰的方法为抽象方法 抽象方法---一个方法没有具体的实现
    public abstract void draw();
}   //重写抽象方法
//    @Override
//    public void draw() {
//        System.out.println("💐");
//    }
//abstract class Smile extends Shape{
//    public Smile(int num) {
//        super(num);
//    }
//    abstract public void draw1();
//
//}
//class Star extends Smile{
//    public Star(int num) {
//        super(num);
//    }
//
//    @Override
//    public void draw() {
//        System.out.println("😊");
//    }
//
//    @Override
//    public void draw1() {
//        System.out.println("🎇");
//
//    }
//}
//抽象类是用来被继承的，被继承的抽象类如果包含了抽象方法，那么抽象方法必须重写
class Flower extends Shape{


    public Flower(int num) {
        super(num);
    }

    @Override
    public void draw() {

    }

//
}

public class demo1 {
    public static void drawMap(Shape shape){
        shape.draw();
    }
    public static void main(String[] args) {
        Flower flower = new Flower(1);
        drawMap(flower);

    }

}
